#ifndef OPEDB_H
#define OPEDB_H

#include <QObject>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QStringList>

class OpeDB : public QObject
{
    Q_OBJECT
public:
    explicit OpeDB(QObject *parent = nullptr);
    static OpeDB& getInstance();

    // 数据库初始化
    void init();
    ~OpeDB();

    // 处理注册 - 数据持久化
    bool handleRegist(const char *name,const char *pwd);

    // 处理登录
    bool handleLogin(const char *name,const char *pwd);

    // 处理下线
    void handleOffline(const char *name);

    // 获取所有在线用户
    QStringList handleAllOnline();

    // 根据用户名查找用户
    int handleSearchUsr(const char *name);

    // 处理添加好友请求
    int handleAddFriend(const char *pername, const char *name);

    // 添加好友入库
    bool addFriendPersistence(const char *pername, const char *name);

    // 查找所有好友
    QStringList handleFlushFriend(const char *name);

    // 处理删除好友
    bool handleDelFriend(const char *name, const char *friendName);
signals:

private:
    QSqlDatabase m_db; // 连接数据库

};

#endif // OPEDB_H
